Over the past decade, individuals and organizations have become more heavily dependent on computers and computer networks. An ever increasing amount of mission critical data is processed and stored on such systems. As a result, it is imperative that mission critical computer resources be as reliable as possible. It is also imperative that mission critical computer resources have enough processing power to handle peak performance loads, both during normal operation and in the event certain computer resources fail.
To help improve the reliability of mission critical computer resources, it is common for businesses to place their computer systems in one or more data centers. Data centers are buildings that are specially constructed to house mission critical computer resources. Data centers often include redundant power supplies, temperature and humidity control, fire walls, etc. Even with these capabilities, however, there is still a chance that a computer system will fail or be destroyed.
One way of reducing the impact of such failures is to maintain a redundant computer system that operates in parallel with a primary computer system. The redundant computer system is often placed at a separate location from the primary computer system to help minimize the possibility that both computer systems will be destroyed in the event of a disaster. If one system should fail, the remaining system remains active to process the mission critical data. A limitation of this approach is that it is relatively expensive to maintain two or more separate computer systems, each having the performance capacity to handle the peak loads of the day to day operations of a business.
A variation of this approach is to maintain multiple computer systems wherein each computer system is dedicated to a particular task or set of tasks. In one example, a primary computer system may be dedicated to processing the day-to-day operation of a business, and a secondary computer may be dedicated to supporting development work or other tasks. If the primary computer system should fail, the secondary computer can be switched over to support the day-to-day operations of the business, and the development work can be temporarily suspended, if necessary. A limitation of this approach is that it is often not economically feasible to provide the same processing power in the secondary computer system. Accordingly, the secondary computer system may not be able to provide the required processing power to keep up with the day-to-day operations of the business.
Another problem faced by many growing businesses is that the processing power required to support the day to day operations of the business grows with time. This is particularly true for rapidly growing e-commerce companies, but also applies to other companies as well. To increase the processing power of many computer systems, additional processors or memory must typically be installed. This often requires that the computer system to be brought down. Bringing the computer system down, however, can significantly disrupt the operation of the business.
Another problem faced by many businesses is that the peak loads that are required to keep up with the day to day operations of the business are often difficult to predict. For example, if there is a delay in gathering year end data, there may be little time to process the data before the results must be published or otherwise released. The processing power required to process such year end data on such short notice may exceed the processing power of the available computer resources. In another example, e-commerce servers may experience severe peak loads during certain times of the year, such as the Christmas season. The extent of these peak loads is also often difficult to predict. To upgrade the processing power of such computer systems, the system often must be brought down to install additional resources. This downtime can often be very detrimental to the operations of the business.
What would be desirable, therefore, is a method and apparatus for authorizing a temporary or permanent increase in the performance of a customer's computer system. It would also be desirable if the increase in performance could be accomplished with little or no down time. This could help provide uninterrupted growth capacity, temporary increases in processing capacity to support high demand peak periods, and disaster recovery support should a primary computer system fail or become destroyed.